/**
 * Created by liutingqzh on 17/12/5.
 */
var express = require("express");

var router = express.Router();

var User =require("../models/users");

var resData={
        code:0,
        msg:""
    }



// 用户注册
/**
 * 注册逻辑
 * 1.用户名不能为空
 * 2.密码不能为空
 * 3.两次输入密码必须一致
 * 4.用户名是否已经被注册
 */
router.post("/user/register",(req,res,next) =>{

    var username = req.body.username;
    var password = req.body.password;
    var repassword = req.body.repassword;
    var resData = Object.assign({},resData)

    //用户名为空
    if(username==""){

        resData.code=1;
        resData.msg="用户名不能为空";
        res.json(resData)
        return;
    }

    //密码为空
    if(password==""){
        resData.code=2;
        resData.msg="密码不能为空";
        res.json(resData)
        return;
    }

    //两次密码不一致
    if(repassword != password){
        resData.code=3;
        resData.msg="两次输入的密码不一致";
        res.json(resData)
        return;
    }

    //用户名已经存在

    User.findOne({
        username:username
    }).then((userInfo) => {
        if(userInfo){
            // 用户信息已经存在
            resData.code=4;
            resData.msg="用户名已经存在";
            res.json(resData)
            return;
        }
        // 不存在则将用户信息保存在数据库中
        var user = new User({
            username:username,
            password:password,
            repassword:repassword
        });
        return user.save();
    }).then((newUserInfo) => {
        console.log(newUserInfo);
        resData.code=0;
        resData.msg="注册成功";
        res.json(resData)
    })




})


/**
 * 用户登录
 */
router.post("/user/login",(req,res,next) => {

    var username = req.body.username;
    var password = req.body.password;
    var resData = Object.assign({},resData)

    if(username==""||password==""){
        // 用户信息已经存在
        resData.code=1;
        resData.msg="用户名或密码不能为空";
        res.json(resData)
        return;
    }

    //从数据库查询用户名和密码是否存在
    /**
     * 如果存在则登录
     */


    User.findOne({
        username:username,
        password:password
    }).then((userInfo)=>{
        //不匹配
        if(!userInfo){

            resData.code=2;
            resData.msg="用户名或者密码错误!";
            res.json(resData)
            return;

        }

        // 用户名密码匹配

        resData.code=0;
        resData.msg="登录成功!";
        resData.userInfo={
            _id:userInfo._id,
            username:userInfo.username
        };
        req.cookies.set("userInfo",JSON.stringify({
            _id:userInfo._id,
            username:userInfo.username
        }));

        res.json(resData)
        return;

    })



})


/**
 * 退出登录
 */

router.get("/user/logout",(req,res) => {
    var resData = Object.assign({},resData)
    req.cookies.set("userInfo",null);
    resData.msg="退出成功!";
    res.json(resData);

})


module.exports=router;